The claimed invention relates generally to the field of disc drive data storage devices and more particularly, but not by way of limitation, to a method and apparatus for optimizing the operational parametric configuration of a disc drive through analysis of the locations of physical data blocks accessed during an input/output (I/O) command sequence from a host device.
A disc drive is a data storage device used to store digital data. A typical disc drive includes a number of rotatable magnetic recording discs which are axially aligned and mounted to a spindle motor for rotation at a high constant velocity. A corresponding array of read/write heads access fixed sized data blocks (sectors) on tracks of the discs to write data to and to read data from the discs.
Disc drives are provided with servo control circuitry to move the heads to the various tracks, read/write channel circuitry to write data to and read data from the discs, and interface control circuitry to facilitate communication and data transfer with a host device. A disc drive is typically configured to operate in accordance with an industry standard interface protocol, such as Small Computer Systems Interface (SCSI). Communications and data transfers are carried out between host and drive in accordance with this protocol.
Over the past several years, benchmark software applications (xe2x80x9cbenchmarksxe2x80x9d) have been developed and used to evaluate the operational performance of various aspects of a computer system, such as the host processor (CPU), video accelerator boards, and disc drives. Such benchmarks allow comparison of performance among various product offerings from different competing manufacturers. For example, WINBENCH(copyright) software, commercially available from eTesting Labs, Inc., Morrisville, N.C., USA, includes the capability of executing a predetermined input/output (I/O) command sequence to a drive and measuring the response of the drive. The software reports various results such as average data transfer rate (in megabytes per second), average access time (in milliseconds), and host processor utilization (the smaller the better).
While such benchmarks are useful in providing global assessment of the performance of a disc drive, such benchmarks are not particularly helpful with regard to efforts to parametrically optimize the drive. This is because there are many factors that can affect the data transfer performance of a disc drive, including the particular I/O command sequence itself.
Disc drives of the present generation typically accommodate command caching, which allows multiple I/O commands to be received in a command queue and executed by the drive in an order different than that received. SCSI drives can store up to 64 pending commands in the command queue. A search strategy is used to execute the commands in an order that will provide the highest transfer rate. For example, if several commands require access to data blocks close to the current position of the heads, and other commands require access to data blocks at a distant location on the discs, the drive may proceed to execute all of the local accesses before moving the heads to the distant location and accessing the data blocks at the distant location to minimize seek time (i.e., time spent moving from one track to the next).
The time required for a particular data block to rotate around and reach the head (latency) is an important factor when selecting the execution order, as delays in waiting for the disc to rotate significantly decrease the resulting transfer rate. Selection of the execution order typically includes estimating how much time it would take to reach each of the data blocks associated with the pending access commands based on latency and the time required to perform any necessary head switches and seeks.
A disc drive can typically further employ various run-time selectable strategies (parameters) that can significantly affect data transfer performance, such as write caching, read on arrival (ROA) and read look ahead (RLA). Write caching involves delaying the writing of data received from the host in favor of execution of other previously requested accesses (as opposed to immediately writing the data upon receipt). ROA and RLA generally entail reading data blocks and placing the contents into the data buffer even though the host has not specifically requested the data from such data blocks, on the basis that the host may request the data in the near future.
ROA involves performing a seek command to move the head to a destination track on which a target data block resides, and commencing to read the preceding data blocks on the track until the target data block reaches the head. By contrast, RLA involves receiving a command to move to a new target track, but because the target data block is a large angular distance away from the head, the drive delays seeking to the new track and instead maintains the head on the current track and reads additional data blocks on the current track before moving to the destination track and reading the target data block. The foregoing strategies can provide improved performance under certain circumstances, such as video streaming applications. However, if the I/O command sequence is substantially random, the operation of these parameters can actually degrade the data transfer performance of the drive since a large amount of nonrequested data is moved to the buffer.
Existing methodologies of tracking disc drive transfer performance (such as benchmarks) generally focus on elapsed time required to complete each access. While this average timing information may help a disc drive designer or user classify the current operational level of the drive (xe2x80x9cgood,xe2x80x9d xe2x80x9cnot so goodxe2x80x9d), it does not necessarily indicate what parametric changes could be made at particular locations within the drive to improve transfer performance, other than to suggest to the user to start changing various parameters in a xe2x80x9ctrial-and-errorxe2x80x9d approach and repeat the test.
Accordingly, there is a need for an improved analysis approach to enable a user to evaluate and optimize a disc drive by identifying the specific correlation between the requests for data at the host level and where the requested data are physically located on the discs, as well as the specific sequence in which the drive operates to service these requests. It is to such improvements that the present invention is directed.
In accordance with preferred embodiments, a disc drive is provided in communication with a host device and is configured to store data from the host device in physical data blocks on at least one disc surface. The physical data blocks are identified by the host device in terms of a corresponding sequence of logical block addresses (LBAs).
A method for increasing the data transfer performance of the disc drive comprises steps of providing input/output (I/O) commands to the disc drive as a sequence of data access operations, with each data access operation directing the transfer of data between at least one LBA within the disc drive and the host device. Communications from the disc drive to the host device are monitored as the I/O commands are provided to the drive.
The correlation between a time sequence of the I/O commands to the locations of the physical data blocks corresponding to the LBAs accessed by the I/O commands is next determined, and at least one data transfer parameter of the disc drive is adjusted in response to the correlation of time sequence and location of physical data blocks. Such data transfer parameters preferably include write caching, read on arrival (ROA) and read look ahead (RLA) settings.
The correlation preferably includes the generation of a three-dimensional histogram plotted against first, second and third orthogonal axes. The first orthogonal axis indicates locations of the physical data blocks, the second orthogonal axis indicates sample interval and the third orthogonal axis indicates frequency of accesses of the physical data blocks. In this way, the actual physical operations of the disc drive in response to the I/O command sequence can be determined, and the effectiveness of the various data transfer parameters in view of the sequence can be readily observed.
In a preferred embodiment, the monitoring of the communications from the disc drive is carried out using data acquisition circuitry resident on a printed circuit board within the host device.
In further preferred embodiments, a software routine is tangibly stored on a computer readable medium. The software routine is configured to be loaded into memory of the host device and to direct the host device to carry out the foregoing method steps.
These and various other features and advantages which characterize the claimed invention will be apparent from a reading of the following detailed description and a review of the associated drawings.